the definition of “objects” is known in software development, with said objects, as self-contained units, feature both data and also instructions for handling the data. Such objects, which are created using what are known as object-oriented programming languages, can, as so-called business objects, map a part of a real business concept. Thus the business objects “integrated housing” or “power supply module” could be created, for mapping a section of an automation project for example. In other words a business object is an object which handles services for the overall application. Business objects in such cases always included a part of the business logic. As well as business objects, other known objects include data objects and interface objects which are accordingly used for the administration of data and data linkage or for operating interfaces and such like.
An advantage of this object-oriented programming is that new objects can be created which inherit the properties of objects already present. In other words a specialization of a business object can be achieved through this inheritance concept. The result of this is that functional expansions which are undertaken after a software version is delivered are only possible with business objects which are supplied with a successor version, or—if base classes of the business object are involved—a new version of all business objects derived from this base class is required.
This restriction makes it difficult to supply individual business objects at a later stage, since, as a result of dependencies, this often involves those business objects which have already been supplied. If the software product concerned involves an open system, into which business objects of third-party manufacturers can be linked, expansions to existing business objects frequently lead to the third-part suppliers also having to create and make available a new version of the business objects which they have created. The costs incurred in such cases lead to the software product becoming more expensive as well as to additional effort being needed for software development and system testing.